"""
SqlAlchermy对数据增删改查
"""
import os
import sys

path = os.path.dirname(__file__)
sys.path.append(os.path.join(path, ".."))

from faker import Faker
from conf.mysql_config import SESSION
from orm.demo1 import Person

fake = Faker(locale='zh_CN')


def insert_data():
    """添加数据"""
    # 添加一条数据
    p1 = Person(name=fake.name(), country='中国')
    p2 = Person(name=fake.name(), country='中国')
    SESSION.add(p1)
    SESSION.add(p2)
    # 添加多条数据
    p_list = [Person(name=fake.name(), country='中国') for _ in range(100)]
    SESSION.add_all(p_list)
    SESSION.commit()


def search_data():
    """查询数据"""
    # 查询全部数据
    all_persons = SESSION.query(Person).all()
    print(all_persons)
    # 通过关键字查询
    person = SESSION.query(Person).filter_by(name='陈敏').all()
    print(person)
    # 使用filter进行查询
    persons = SESSION.query(Person).filter(Person.name == '张博').all()
    print(persons)
    # 使用first查询一条数据
    person = SESSION.query(Person).filter(Person.name == '张博').first()
    print(person)
    # 使用get方法查询主键为：11的数据
    person = SESSION.query(Person).get(11)
    print(person)


def update_data():
    """更新数据"""
    first_person = SESSION.query(Person).first()
    first_person.name = fake.name()
    SESSION.commit()


def delete_data():
    """删除数据"""
    first_person = SESSION.query(Person).first()
    SESSION.delete(first_person)
    SESSION.commit()


if __name__ == '__main__':
    # insert_data()
    # search_data()
    # update_data()
    delete_data()
